الخوارزمية المجرية
هذه الخوارزمية تطبق على مشكلة الاقتران الأمثل المتمثل بمصفوفة الحدوث R و عناصرها rij ≥ 0 . تبحث الخوارزمية عن عناصر rij ليس لها أي صف مشترك (لا سطر مشترك و لا عمود مشترك) و مجموعها المتراكم له أكبر قيمة ممكنة. صممت هذه الخوارزمية سنة 1955 من طرف هارولد كوهن.[1]
الخوارزمية
[عدل]تعريفات
[عدل]تعرّف المتغيرات التالية :
ui يسمى كمون السطر i ، و vj كمون العمود j ، مع الشرط لكل عنصر ui + vj ≥ rij
المصفوفة Q ، تدعى مصفوفة المساواة و عناصرها qij
- إذا ui + vj > rij فإن qij = 0
- إذا ui + vj = rij والسطر i مسند للعمود j فإن *qij = 1
- إذا ui + vj = rij والسطر i غير مسند للعمود j فإن qij = 1
عملية الانتقال : السطر i المسند في عمود j يتم إسناده إلى عمود k مع k ≠ j ،
في المصفوفة Q ، الانتقال يستبدل *1 ب 1 ، و 1 ب *1 في نفس السطر
سطر ضروري : سطر مسند فيه إمكانية للانتقال ،
في المصفوفة Q ، هو سطر يحتوي على *1 و 1 في عمود غير مغطى
عمود مغطى : عمود تم إليه إسناد سطر، لا توجد إمكانية انتقال ،
في المصفوفة Q ، هو عمود يحتوي على *1 في سطر غير ضروري
عمود مؤهل : عمود لا يحتوي على *1
الإسناد كامل إذا لم يمكن إسناد سطرا غير مسند في عمود غير مسند إلا بعد القيام بانتقال
الاجراءات
[عدل]الخوارزمية بعد عملية تهيئة تتمثل في التكرار المتناوب لإجراءين (I البحث عن انتقال متزايد) و (II تسوية المصفوفة Q)
التهيئة
[عدل]ui = أكبر عنصر rij في كل سطرi
0 = vj في كل عمود j
qij = 0 إذا
ui + vj > rij
qij = 1 إذا ui + vj = rij
لجميع الأسطر في Q
{ تفحّص السطر من اليسار إلى اليمين
غيّر أول 1 تواجهه إلى *1 إذا لا يوجد *1 في عموده}
الإجراء I
[عدل]// سرد عمليات الانتقال الممكنة بدءًا من عمود مؤهل
لجميع أعمدة Q المؤهلة (لا تحتوي على *1)
- { إذا كان العمود لا يحتوي على 1
- { انتقل إلى العمود التالي}
- وإلا
- // 1 موجود في العمود (نفرض jk-1)
- { كرر لكل 1 موجود في العمود jk-1 (نفرض في السطر ik)
- { إذا وجد *1 في السطر ik // فإن أي انتقال يعطي اسنادا كاملا
- { // بناء تسلسل 1 ، *1 ، 1 ، *1 ، 1 ، ...
- ضع العلامات كالتالي :
- 1 في الموقع (ik, jk-1)
- 1* في الموقع (ik, jk)
- 1 في الموقع (ik+1, jk)
- ... ...... .....
- إذا كان عدد العناصر في التسلسل فردي
- { // عثرنا على انتقال يحرر عمودًا يحتوي على 1 غير مسند
- اعكس كل 1 إلى *1 و كل *1 إلى 1 في التسلسل }
- }
- }
- { إذا وجد *1 في السطر ik // فإن أي انتقال يعطي اسنادا كاملا
- }
- } // لا يوجد عمود مؤهل : لا يوجد انتقال ممكن ، الإسناد كامل
الإجراء II
[عدل]- إذا لم يوجد سطر غير ضروري و لا عمود غير مغطى
- { كل *1 هو الاسناد الأمثل}
- وإلا
- { احسب (d = min (ui + vj - rij على الأسطر غير الضرورية والأعمدة غير المغطاة
- إذا جميع الأسطر غير الضرورية لها ui > 0
- { (m = min(d، ui مأخوذ على جميع الأسطر غير الضرورية
- لجميع الأسطر غير الضرورية ui = ui - m
- لجميع الأعمدة المغطاة vj = vj + m
- }
- إذا كان سطر غير ضروري فيه 0 = ui
- { (m = min(d، vj مأخوذة على جميع الأعمدة غير المغطاة j
- لجميع الأسطر الضرورية ui = ui + m
- لجميع الأعمدة غير المغطاة vj = vj – m
- }
- }
تحسينات الطريقة الأصلية
[عدل]ألحق كوهن تعديلات [2] على الطريقة المجرية مستوحاة من الأعمال المتزامنة لمارشال هول [3] و فورد و فيولكرسون [4] ، و خاصة ميونكرز الذي أتى بالبرهان النظري لصحة الخوارزمية.[5]
تتمثل مراجعة الطريقة المجرية في إعادة النظر إلى الإجراء I للخوارزمية من زاوية نظرية البيان. يجدي اعتبار Q مصفوفة حدوث لبيان ثنائي و عناصرها التي تساوي *1 تمثل حواف إقتران M ، في هذه الحالة عملية إيجاد تسلسل 1 ،*1 ، 1، *1 ، 1 ... يرجع إلى البحث عن مسار متزايد حول الاقتران M. لم يأتي الحل الأمثل لهذا المشكل إلا بعد عمل هوبكروفت و كارب حيث أصبحت طريقتهما تستغل على نطاق واسع في إطار الاسناد الأمثل لغرض البرمجة الحازمة لالإجراء I
صيغة كوهن ميونكرز للطريقة المجرية
[عدل]المسألة تطرح بالنظر إلى مصفوفة A وسعها n×n تسمى مصفوفة التكلفة ، عناصرها aij أعداد حقيقية غير سالبة ، المطلوب هو إيجاد n عناصر لا تشترك في صف بحيث تحقق أقل مبلغ aij∑ ممكن
ترجع الطريقة المستخدمة لحل هذه المشكلة إلى جهود كوهن ثم ميونكرر لتحسين وتبسيط تطبيق الطريقة المجرية
المصطلحات
[عدل]الصف يعني سطر أو عمود من المصفوفة A
الغطاء هو مجموعة الصفوف التي تحتوي على جميع الأصفار 0 في A
الخوارزمبة
[عدل]• لجميع أسطر A أطرح أصغر عنصر في السطر من جميع عناصر السطر
• لجميع أعمدة A أطرح أصغر عنصر في العمود من جميع عناصر العمود
• قم بتغطية كل 0 في المصفوفة A بأقل عدد ممكن من الصفوف k
طالما k < n
- {
- فليكن h قيمة أصغر عنصر aij غير مغطى في A
- لجميع العناصر aij
- {
- إذا aij غير مغطى فإن aij = aij - h
- إذا aij مغطى بصف فإن aij يبقى على قيمته
- إذا aij مغطى بصفين متقاطعين فإن aij = aij + h
- }
- k = أدنى عدد الصفوف اللازمة لتغطية كل 0 في A
- }
ليكن G البيان الثنائي الذي يمثل حوافه كل 0 في A
الاقتران الكامل في G هو الإسناد الأمثل
وصف الخوارزمية هذا لا يتطرق إلى تفاصيل إجراء اختيار أدنى تغطية في كل تكرار.
وصلات خارجية
[عدل]- شريط فيديو(طراز فلاش ، مدة 75 دقيقة) محاضرة عن «الطريقة المجرية» ألقاها هارولد كوهن في 13 يوليو 2010 أثناء ندوة EURO XXIV في بحوث العمليات بلشبونة ، البرتغال. يلفت الانتباه أن نسخة مطبوعة مختصرة لهذه المحاضرة قد نشرت كمقال.[6]
مراجع
[عدل]- ^ KUHN, Harold W. The Hungarian method for the assignment problem. Naval research logistics quarterly, 1955, vol. 2, no 1‐2, p. 83-97
- ^ KUHN, Harold W. Variants of the Hungarian method for assignment problems, 1956
- ^ HALL, Marshall. An algorithm for distinct representatives. The American Mathematical Monthly, 1956, vol. 63, no 10, p. 716-717.
- ^ FORD JR, Lester Randolph et FULKERSON, Delbert Ray. Solving the transportation problem. Management Science, 1956, vol. 3, no 1, p. 24-32.
- ^ MUNKRES, James. Algorithms for the assignment and transportation problems. Journal of the society for industrial and applied mathematics, 1957, vol. 5, no 1, p. 32-38
- ^ KUHN, Harold W. A tale of three eras: The discovery and rediscovery of the Hungarian Method. European Journal of Operational Research, vol. 219, no 3, p. 641-651, 2012